#include<iostream>
using namespace std;
#include<list>
/*
功能描述：
    将容器中的元素反转，以及将容器中的数据进行排序
函数原型：
    reverse();  反转链表
    sort();     链表排序
*/
void printList(const list<int> &L)
{
    for(list<int>::const_iterator it=L.begin();it!=L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
void test01()
{
    list<int> l1;
    l1.push_back(20);
    l1.push_back(10);
    l1.push_back(50);
    l1.push_back(70);
    l1.push_back(45);
    printList(l1);

    //反转
    l1.reverse();
    printList(l1);

}
bool myCompare(int v1,int v2)
{
    //降序，就让第一个数>第二个数
    return v1>v2;
}
void test02()
{
    list<int> l1;
    l1.push_back(20);
    l1.push_back(10);
    l1.push_back(50);
    l1.push_back(70);
    l1.push_back(45);
    printList(l1);
    //排序
    //所有不支持随机访问迭代器的容器，不可以用标准算法
    //不支持随机访问迭代器的容器，内部会提供对应一些算法
    l1.sort();//默认排序规则，从小到大，升序
    printList(l1);

    l1.sort(myCompare);
    printList(l1);


}
int main()
{
    test01();
    test02();
}